
import java.util.Set;
import java.awt.Point;

/**
<code>PlayerListener</code> is an interface for receiving instructions from a <code>Player</code>.
*/
public interface PlayerListener {
	
	/**
	The <code>Player</code> takes control the selected cards.
	*/
	public void hold();
	
	/**
	The <code>Player</code> relinquishes control of the selected cards.
	*/
	public void release();
	
	//////// the following methods should only be called when player does not have control.
	
	public void select(Set<Card> cards);
	
	
	//////// the following methods should only be called when player has control.
	
	/**
	The player drops some of the cards they are currently controlling.
	*/
	public void dropSelection(Set<Card> cards);
	
	/**
	The <code>Player</code> moves the selected cards.  Must be preceded by a call to <code>pickUp</code>.
	@param point the amount to offset the cards by.
	*/
	public void moveBy(Point point);
	public void flip();
	public Table getTable();
	public void shuffle();
	
	// set permissions on cards
	//public void setViewPermissions...
	
}
